﻿window.onload = function(){

	// EXTENCAO PARA GRAVAR O TOTAL DE LINHAS NA MODAL DE PRODUTO
	$.extend($.fn.datagrid.defaults.view, {
		onAfterRender:function(target){
			grid = $.data(target, "datagrid");
			totLinhaModal = grid.data.rows.length-1;
			var opts = grid.options;
			if (opts.showFooter) {
				var _769 = $(target).datagrid("getPanel").find("div.datagrid-footer");
				_769.find("div.datagrid-cell-rownumber,div.datagrid-cell-check").css("visibility", "hidden");
			}
		}
	});

	// EXTENCAO USADA PARA INCLUIR EVENTOS NOS CAMPOS
	$.extend($.fn.numberbox.defaults, {
		inputEvents: {
			// CUSTOMIZADO
			keyup: function(e) {
				if(e.which || e.keyCode){
					// TECLA ENTER(13) SETA PARA BAIXO(40)
					if (e.keyCode == 13 || e.keyCode == 40) {
						if(modalAberta){
							if(editIndexModal<totLinhaModal){
								editModal(editIndexModal+1);
							}
						}else{
							if(editIndexItens<totLinhaItens){
								editItens(editIndexItens+1);
							}
						}
					}
					// TECLA PARA CIMA(38)
					if (e.keyCode == 38) {
						if(modalAberta){
							if(editIndexModal>0){
								editModal(editIndexModal-1);
							}
						}else{
							if(editIndexItens>0){
								editItens(editIndexItens-1);
							}
						}
					}
				}
			},
			// VEM DO PADRAO
			keypress: function(e){
				var _4f3 = e.data.target;
				var opts = $(_4f3).numberbox("options");
				return opts.filter.call(_4f3, e);
			},
			// VEM DO PADRAO
			blur: function(e) {
				var _4f4 = e.data.target;
				$(_4f4).numberbox("setValue", $(_4f4).numberbox("getText"));
				calcula();
			},
			// VEM DO PADRAO
			keydown: function(e) {
				if (e.keyCode == 13 || e.keyCode == 38 || e.keyCode == 40) {
					var _4f5 = e.data.target;
					$(_4f5).numberbox("setValue", $(_4f5).numberbox("getText"));
					calcula();
				}
			}
		}
	});

	$('#grdItens').datagrid({
		width:1020,
		height:300,
		rownumbers:true,
		singleSelect:true,
		footer:'#ft',
		onClickRow: editItens,
		columns:[carga('PRODUTO').colunas],
	});

	// TRATA O MODAL DE ERRO
	$('#retorno').dialog({
		title: 'Retorno',
		width: 700,
		height: 500,
		iconCls: 'icon-tip',
		closed: true,
		cache: false,
		modal: true	
	});

	// MODAL DO HISTORICO DO CLIENTE
	$('#hist').dialog({
        title: 'Histórico do cliente',
        width: 420,
        height: 320,
        closed: true,
        cache: false,
        modal: true
    });

	// GRID DO MODAL DO CLIENTE
    $('#grdHist').datagrid({
		singleSelect:true,
		showFooter:true,
		pageNumber:1,
		showHeader:true,
		fit:true,
		columns:[[
			{field:'nota',title:'Nota',width:100,type:'text'},
			{field:'serie',title:'Serie',width:80,type:'text'},
			{field:'emissao',title:'Emissão',width:100,type:'text'},
			{field:'valor',title:'Valor',align:'right',width:100,type:'text'}
		]]
	});

	// GERA A DATA ATUAL NO FORMATO PADRAO
	var Data = new Date();
	Data = (Data.getDate() < 10 ? "0"+Data.getDate() : Data.getDate())+"/"+(Data.getMonth()+1 < 10 ? "0"+(Data.getMonth()+1) : Data.getMonth()+1)+"/"+Data.getFullYear();

	// INSERE A DATA NO FORMULARIO
	$('#txtemissao').val(Data);

	// TRATA O CAMPO DO VALOR TOTAL
	$('#txtTotal').numberbox({
		min:0,
		precision:6,
		disabled:true,
		prefix:'R$ '
	});
}


// FOI COMENTADA A LINHA 9164 DO JQUERY.EASYUI PARA GARANTIR UM MELHOR DESENPENHO
// FUNCAO QUE FAZ O CALCULO DA LINHA DE PRECO UNITARIO E TOTAL
function calcula(){

	// DEFINE A LINHA E A GRID QUE ESTA EM USO
	if(modalAberta){
		var grid = $('#grdModal');
		var linha = editIndexModal;
	}else{
		var grid = $('#grdItens');
		var linha = editIndexItens;
	}

	// CAPTURA OS CAMPOS DE EDICAO
	var edPrcVen = grid.datagrid('getEditor', {index:linha,field:'prcven'});
	var edPrcUni = grid.datagrid('getEditor', {index:linha,field:'prcuni'});
	var edQuant = grid.datagrid('getEditor', {index:linha,field:'quant'});
	var edDesc = grid.datagrid('getEditor', {index:linha,field:'desc'});
	var edAcres = grid.datagrid('getEditor', {index:linha,field:'acres'});
	var edTot = grid.datagrid('getEditor', {index:linha,field:'total'});

	// CAPTURA OS VALORES
	var preco = parseFloat( $(edPrcVen.target).numberbox('getValue') );
	var quant = parseFloat( $(edQuant.target).numberbox('getValue') );
	var desc = parseFloat( $(edDesc.target).numberbox('getValue') );
	var acres = parseFloat( $(edAcres.target).numberbox('getValue') );
	var totLinAnt = parseFloat( $(edTot.target).numberbox('getValue') );
	var descMax = parseFloat( $('#A1_DESCGRU').val() );
	var calcPreco = 0;
	var totLinha = 0;

	// VERIFICA SE NÃO É UM NUMERICO CASO NÃO ZERA
	quant = isNaN(quant) ? 0 : quant;
	desc = isNaN(desc) ? 0 : desc;
	acres = isNaN(acres) ? 0 : acres;
	descMax = isNaN(descMax) ? 0 : descMax;

	// EXECUTA OS CALCULOS
	totLinha = quant*preco;
/*
	if(acres>0){
		calcPreco = preco+((preco/100)*acres);
		totLinha = calcPreco*quant;
		$(edDesc.target).numberbox('setValue', 0);
	}else if(desc>0){
		calcPreco = preco-((preco/100)*desc);
		totLinha = calcPreco*quant;
	}else{
		if(quant>0){
			calcPreco = preco;
			totLinha = quant*preco;
		}else{
			calcPreco = preco;
			totLinha = 0;
		}
	}
*/

	// SETA OS VALORES CALCULADOS
	$(edTot.target).numberbox('setValue', totLinha);
	//$(edPrcUni.target).numberbox('setValue', calcPreco);

	// GRAVA O TOTAL DO PEDIDO DE VENDA
	if(!modalAberta){
		var total = parseFloat( $('#txtTotal').numberbox('getValue') );
		total = (total-totLinAnt)+totLinha;
		$('#txtTotal').numberbox('setValue',total);
	}
}

// INICIALIZA A EDICAO DE LINHA NA GRID DE ITENS
function editItens(index){

	modalAberta = false;

	if (editIndexItens != index){
		if (fimEditItens()){
			var grid = $('#grdItens');
			grid.datagrid('selectRow', index);
			grid.datagrid('beginEdit', index);
			grid.datagrid('getEditors', index)[2].target.next().children()[0].focus();
			editIndexItens = index;
		} else {
			$('#grdItens').datagrid('selectRow', editIndexItens);
		}
	}
}

// SALVA E FINALIZA A EDICAO DOS ITENS
function fimEditItens(){

	if (editIndexItens == undefined){return true}

	if ($('#grdItens').datagrid('validateRow', editIndexItens)){
		$('#grdItens').datagrid('endEdit', editIndexItens);
		$('#grdItens').datagrid('clearSelections');
		editIndexItens = undefined;
		return true;
	} else {
		return false;
	}
}

// EXCLUI ITEM NA GRID DOS ITENS
function delItens(){

	if (editIndexItens == undefined){return}

	var grid = $('#grdItens');

	// CAPTURA VALORES PARA AJUSTAR O TOTAL
	var edTot = grid.datagrid('getEditor', {index:editIndexItens,field:'total'});
	var totLin = parseFloat( $(edTot.target).numberbox('getValue') );
	var total = parseFloat( $('#txtTotal').numberbox('getValue') );

	// CALCULA O TOTAL E SETA OS VALORES
	total = total-totLin;
	$('#txtTotal').numberbox('setValue',total);

	// EXCLUI A LINHA DA GRID ITENS E REDEFINE AS VARIAVEIS PUBLICAS
	grid.datagrid('cancelEdit', editIndexItens)
	grid.datagrid('deleteRow', editIndexItens);
	editIndexItens = undefined;
	totLinhaItens--;

}

function historico(){

	var cliente = $('#A1_COD').val();
	var loja = $('#A1_LOJA').val();

	if(cliente==null || cliente==""){
		$.messager.alert('Aten&ccedil;&atilde;o!','Favor incluir um cliente!','error');
		return;
	}

	$('#grdHist').datagrid({
		url:'u_f3hist.apw',
		queryParams: {
			cliente:cliente,
			loja:loja
		},
	});

	$("#hist").dialog('open');

}

// SALVA O PEDIDO DE VENDA
function salvar(){

	fimEditItens()

	var cliente = $('#A1_COD').val();
	var loja = $('#A1_LOJA').val();
	var tabela = $('#A1_TABELA').val();
	var cliEntrega = $('#C5_CLIENT').val();
	var lojaEntrega = $('#C5_LOJAENT').val();
	var codTransp = $('#A4_COD').val();
	var condPag = $('#E4_CODIGO').val();
	var obs1 = $('#txtobs1').val();
	var itens = $('#grdItens').datagrid('getRows');
	var agluItens = '';
	
	if(cliente==null || cliente==""){
		$.messager.alert('Aten&ccedil;&atilde;o!','Favor informar um cliente!','error');
		return;	
	}


	if(condPag==null || condPag==""){
		$.messager.alert('Aten&ccedil;&atilde;o!','Favor informar uma condição de pagamento!','error');
		return;	
	}

	for(var ts=0;ts<itens.length;ts++){

		// VALIDA SE A QUANTIDADE ESTA ZERADA
		if(itens[ts].quant==0){
			$.messager.alert('Aten&ccedil;&atilde;o!','Produto '+itens[ts].B1_COD+' sem quantidade','error');
			return;
		}

		// INSERE PIPE PARA IDENTIFICAR A  LINHA
		if(ts>0){
			agluItens += '|'
		}
		
		// MONTA STRING COM AS LINHAS
		agluItens += itens[ts].B1_COD+';'
		agluItens += itens[ts].quant+';'
		agluItens += itens[ts].prcuni+';'
		agluItens += itens[ts].prcven+';'
		agluItens += itens[ts].desc+';'
		agluItens += itens[ts].acres
	}

	$("#mascara").mask("Processando Aguarde.....");

	$.ajax({
		url: 'u_umata410.apw',
		type: "post",
		dataType: 'json',
		data: {
			cliente:cliente,
			loja:loja,
			tabela:tabela,
			cliEntrega:cliEntrega,
			lojaEntrega:lojaEntrega,
			codTransp:codTransp,
			condPag:condPag,
			obs1:obs1,
			itens:agluItens,
		},
		success: function (data) {
			$("#mascara").unmask();	
			$.messager.alert('Aten&ccedil;&atilde;o!',data.sucesso,"",function(){
				location.href="u_DTRPV01.apw";
			});
		},
		error: function(erro) {
			$("#mascara").unmask();
			$("#retorno").dialog('open');
			$("#retorno").html(erro.responseText);
		}
	});
}